HydroNetwork Module

History

current version 1.0 - 4th October 2016

version date comment
1.0 04/Oct/2016 Original code

License

license: GNU GPL http://www.gnu.org/licenses/

Module Description

Module to manage how cells are connected in a network

Description: Read network for sub-surface flow routing from file

arguments with intent in:

arguments with intent out:

local declarations

-------------------------------end of declaration----------------------------- open file in readonly mode

count number of branches in network

rewind file

skip first two lines

allocate branches

read info from file

close file

Description: Read network for soil balance from file

arguments with intent in:

arguments with intent out:

local declarations

-------------------------------end of declaration----------------------------- open file in readonly mode

count number of branches in network

rewind file

skip first two lines

allocate branches

read info from file

close file



Interfaces

public interface ReadHydroNetwork

  • private subroutine ReadNetworkSurfaceFlow(filename, domain, network)

    Read network for surface flow routing from file

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: filename
    type(grid_integer), intent(in) :: domain
    type(NetworkSurfaceFlow), intent(out) :: network
  • private subroutine ReadNetworkGroundwater(filename, domain, network)

    Read network for groundwater-surface interaction from file

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: filename
    type(grid_integer), intent(in) :: domain
    type(NetworkGroundwater), intent(out) :: network
  • private subroutine ReadNetworkSediment(filename, domain, network)

    Read network for sediment routing from file

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: filename
    type(grid_integer), intent(in) :: domain
    type(NetworkSediment), intent(out) :: network

Derived Types

type, public ::  NetworkGroundwater

Components

Type Visibility Attributes Name Initial
type(ReachGroundwater), public, POINTER :: branch(:)
integer, public :: nreach

type, public ::  NetworkSediment

Components

Type Visibility Attributes Name Initial
type(ReachSediment), public, POINTER :: branch(:)
integer, public :: nreach

type, public ::  NetworkSurfaceFlow

Components

Type Visibility Attributes Name Initial
type(ReachSurfaceFlow), public, POINTER :: branch(:)
integer, public :: nreach

type, public ::  ReachGroundwater

Components

Type Visibility Attributes Name Initial
integer, public :: i0

__beginning of reach

integer, public :: i1

__end of reach

integer, public :: id
integer, public :: j0

/ local reference system

integer, public :: j1

/

integer, public :: ncells

number of cells in a reach

integer, public :: order

Horton-Sthraler order

real(kind=float), public :: riverbed
real(kind=float), public :: scalefactor_conductivity
real(kind=float), public :: x0

__beginning of reach

real(kind=float), public :: x1

__end of reach

real(kind=float), public :: y0

/ spatial coordinate

real(kind=float), public :: y1

/

type, public ::  ReachSediment

Components

Type Visibility Attributes Name Initial
real(kind=float), public :: area

area drained by end section [m2]

real(kind=float), public :: d50

mean sediment size [mm]

integer, public :: i0

__beginning of reach

integer, public :: i1

__end of reach

integer, public :: id
integer, public :: j0

/ local reference system

integer, public :: j1

/

real(kind=float), public :: length

reach length [m]

integer, public :: ncells

number of cells in a reach

integer, public :: order

Horton-Sthraler order

integer(kind=short), public :: routingMethod
real(kind=float), public :: slope

average reach slope [m/m]

real(kind=float), public :: x0

__beginning of reach

real(kind=float), public :: x1

__end of reach

real(kind=float), public :: y0

/ spatial coordinate

real(kind=float), public :: y1

/

type, public ::  ReachSurfaceFlow

Components

Type Visibility Attributes Name Initial
real(kind=float), public :: B0

bottom width, = 0 for triangular section [m]

real(kind=float), public :: alpha

angle formed by dykes over a horizontal plane [deg]

real(kind=float), public :: area

area drained by end section [m2]

integer, public :: i0

__beginning of reach

integer, public :: i1

__end of reach

integer, public :: id
integer, public :: j0

/ local reference system

integer, public :: j1

/

real(kind=float), public :: k

flood wave travel time used to compute C1, C2, and C3 [s]

real(kind=float), public :: length

reach length [m]

real(kind=float), public :: n

manning roughness coefficient [s m^(-1/3)]

integer, public :: ncells

number of cells in a reach

integer, public :: order

Horton-Sthraler order

integer, public :: routing_model
real(kind=float), public :: slope

average reach slope [m/m]

real(kind=float), public :: x

Muskingum weighting factor [-]

real(kind=float), public :: x0

__beginning of reach

real(kind=float), public :: x1

__end of reach

real(kind=float), public :: y0

/ spatial coordinate

real(kind=float), public :: y1

/


Subroutines

private subroutine ReadNetworkGroundwater(filename, domain, network)

Read network for groundwater-surface interaction from file

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: filename
type(grid_integer), intent(in) :: domain
type(NetworkGroundwater), intent(out) :: network

private subroutine ReadNetworkSediment(filename, domain, network)

Read network for sediment routing from file

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: filename
type(grid_integer), intent(in) :: domain
type(NetworkSediment), intent(out) :: network

private subroutine ReadNetworkSurfaceFlow(filename, domain, network)

Read network for surface flow routing from file

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: filename
type(grid_integer), intent(in) :: domain
type(NetworkSurfaceFlow), intent(out) :: network